Compiler-Assisted OpenMP Runtime Organization for Embedded Multicores
نویسندگان
چکیده
The recently introduced OpenMP device constructs open a whole new world for application writers, enabling them to easily utilize the host cpus along with other attached computational resources, in an intuitive and productive manner. At the same time, multicore architectures have conquered the whole computing spectrum. General-purpose and embedded system alike integrate multicore cpus and multicore co-processors or accelerators. The new OpenMP target-related directives offload portions of the program code (kernels) to any of the available devices; the kernels themselves can take advantage of the multiplicity of processing elements within the target device by employing OpenMP constructs. However, most co-processors or accelerators, especially embedded ones, have limited resources. This severely constrains the extend of OpenMP support that can be implemented within a device. A usual design decision is to only support OpenMP partially, in effect hindering the full exploitation of the device capabilities through a high-level programming model. In this work, we present a novel solution to this problem. We propose a compiler-assisted, adaptive runtime system organization, which generates applicationspecific support by implementing only the OpenMP functionality required each time. In particular, based on extensive compiler analysis, the offloaded kernels can be accompanied by a runtime library tailored to the needs of the given application. Full OpenMP support is thus available, if needed. However, in the usual scenario where kernels do not require complex OpenMP functionalities, our method can lead to dramatically reduced executable sizes and/or execution times. To demonstrate the potential of our proposal we present an implementation on the popular Parallella board. ∗S.N. Agathos is supported by the Greek State Scholarships Foundation (IKY)
منابع مشابه
OSCAR API for Real-Time Low-Power Multicores and Its Performance on Multicores and SMP Servers
OSCAR (Optimally Scheduled Advanced Multiprocessor) API has been designed for real-time embedded low-power multicores to generate parallel programs for various multicores from different vendors by using the OSCAR parallelizing compiler. The OSCAR API has been developed by Waseda University in collaboration with Fujitsu Laboratory, Hitachi, NEC, Panasonic, Renesas Technology, and Toshiba in an M...
متن کاملSkeleton driven transformations for an OpenMP compiler
In this paper we present a technique based on code templates, oriented to source to source code transformations for OpenMP parallelization. Our goal is to provide an OpenMP compilation infrastructure that includes a reconfigurable code generation phase, targetting different OpenMP runtime systems or explore different translation strategies for OpenMP constructs. We describe the main OpenMP tran...
متن کاملA ROSE-Based OpenMP 3.0 Research Compiler Supporting Multiple Runtime Libraries
OpenMP is a popular and evolving programming model for shared-memory platforms. It relies on compilers to target modern hardware architectures for optimal performance. A variety of extensible and robust research compilers are key to OpenMP’s sustainable success in the future. In this paper, we present our efforts to build an OpenMP 3.0 research compiler for C, C++, and Fortran using the ROSE so...
متن کاملNanos Mercurium: a Research Compiler for OpenMP
OpenMP is still in the process of being defined and extended to broad the range of applications and parallelization strategies it can be used for. The proposal of OpenMP extensions may require the implementation of new features in the runtime system supporting the OpenMP parallel execution and modifications in an existing OpenMP compiler, either at the front end (parsing of new directives and c...
متن کاملTowards OpenMP for Java
This paper describes JOMP, a definition and implementation of a set of directives and library methods for shared memory parallel programming in Java. A specification of the OpenMP-like directives and methods is proposed. A prototype implementation, consisting of a compiler and a runtime library (both written entirely in Java) is presented, which implements almost all of the proposed specificati...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2016